Avant-propos
Désolé…
-
… pour l'anglais (really?)
-
… de ne pas être un spécialiste d’Android
-
… que vous soyez seulement la 2ème promo à subir ce cours
-
… que ce cours arrive avant que vous sachiez développer en Android/Mobile (majorité)
-
… que vous ayez à bosser sans ordi ce matin! (au moins 1h30!)
1. Content
-
Brainstorming & organization
-
Internet search & site web building
-
UML & Modeling for Mobile Applications
-
Case study
2. Organisation prévue
Module de 21h :
-
4 créneaux semaine 41
-
[1] Intro & Brainstorming (10/10)
-
[2] Travail de groupe (10/10)
-
[3] Première maquette du site Web (11/10)
-
[4] UML rappel et concepts importants (11/10)
-
-
10 créneaux semaine 41-42
-
[5] Gestion de projet spécifique, UML (13/10)
-
[6] Mise en oeuvre sur une étude de cas (13/10)
-
[7-8] Reverse ingéniérie d’une application Android (17/10)
-
[9-13] Modélisation : projet perso (binôme) (17-18/10)
-
[14] Présentation publique de votre appli perso (binôme) (19/10)
-
[14] QCM exam final (19/10)
-
3. Let’s start Brainstorming
Répartition des technos connues (depuis 2015) :
Répartition des technos connues (2015) :
Résultats du brainstorming 2016/2017 (merci Nathan Coustenoble pour la prise de note) :
4. Wrap-up
Par petits groupes :
-
[1] Préparation du site web
-
[2] Liste des concepts UML connus et utiles
-
[3] Outils et langages de description d’écrans
-
[4] Plateformes de développement Android
-
[5] Différences iOS /Android
-
[…] Résultats du brainstorm
| Les numéros ne représentent pas un ordre d’importance! |
4.1. Plans B …
-
Spécificités des applications mobiles
-
Modélisation des interfaces
-
Modélisation de l’architecture
-
Modélisation du comportement
-
Agilité et applications mobiles
4.2. [1] Site web des fiches
-
Simple et statique
-
Moderne (Foundation, Bootstrap, Awestruct)
-
Multilingue compliant (FR/UK)
| Je fait parti de ce groupe! |
4.3. [2] Concepts UML connus
-
1. Recensement des concepts connus
-
diagrammes
-
concepts dans ces diagrammes
-
méthodes (RUP, OpenUP, Agile)
-
⇒ Google Sheet ?
-
-
2. Pour le Mobile Modeling
-
brainstorming
-
4.4. [3] Outils et langages de description d’écrans
-
Type SNI (Schéma de Navigation des Interfaces)
-
Dessin / Générationd de code
-
Focus sur les Open Sources of course
-
…
4.5. [4] Plateformes de développement Android
-
Avis objectifs (chiffrés)
-
Aspects historiques
-
Focus sur les Open Sources of course
-
…
4.6. [5] Différences /
-
Niveau modélisation
-
Concepts
-
Cycle de développement
-
…
4.7. Consignes
Pour chaque groupe (sauf [1]) :
-
Exprimer le problème
-
Rechercher les solutions existantes
-
Brainstormer sur la meilleure solution
-
La formaliser un minimum
-
Remplir un poster sous la forme d’une fiche (cf. point suivant)
-
Merger sa branche
4.8. Fiche
-
Titre
-
Motivations & problems (shortly)
-
Current approaches
-
Proposed approach
-
Example
-
4.9. Résultats
En 2015/2016 nous avons eu deux équipes chargées du site web :
Pour 2016/2017 nous avons eu deux équipes chargées du site web :
5. Exemple complet de démarche "ad hoc" autour d’UML
Nous allons aborder une étude de cas tirée du livre de Pascal Roques.
|
Pour un apperçu du livre, cf. http://www.editions-eyrolles.com/Chapitres/9782212110708/chap01.pdf. |
5.1. Le cahier des charges
Il s’agit de développer un service de vente en ligne (http://jeBouquine.com).
| Depuis l’écriture du livre un vrai site de vente utilise cette URL! |
5.2. Des besoins au code
5.3. Raffinement des besoins
5.4. Près du code
5.5. Comment trouver les classes ?
5.6. Comment trouver les interactions ?
5.7. Liens entre diagrammes
5.8. Démarche complète
6. Diagrammatic models
6.1. UML Use Case Diagram
6.2. SysML Requirements Diagram
6.3. Sketch and drawings (Maquettes)
| L’IUT de Blagnac a une licence éducation qui vous permet d’utiliser gratuitement Balsamiq : https://iutblagnac.mybalsamiq.com. |
6.4. UML Class Diagram
6.5. SNI: Schéma de Navigation d’Interface
| Il existe un plug-in Eclipse pour SNI: http://sourceforge.net/projects/visual-sni/ |
6.6. UML State Machines
6.7. UML Sequence Diagram
6.8. UML Component Diagram
6.9. SysML Block Definition Diagram
6.10. SysML Internal Block Definition Diagram
6.11. UML deployment diagram
7. Process examples
7.1. One example
-
1) Identify the app users
-
2) Identify the main functionalities
-
3) Analyzing and expanding each functionality
7.2. Agile for Mobile Application Development
7.2.1. Example 1
Some restrictions with mobile application development are:
-
Mobile has restrictions: size of the apps, …
-
Application should be downloadable very fast
-
Update applications quickly and smoothly
-
Error free and fast
-
Seamlessly interact with backend server as needed
7.2.2. Example 2
Challenges presented by developing mobile apps:
-
Short life cycles
-
Short development cycles
-
Limited hardware
-
Frequently changing user demands
-
Must be easily updateable
-
Must download quickly
7.2.3. Example 3
An “Agile with Discipline” approach for mobile app development
| Taken from [IBM] |
7.2.4. Example 4
Multi-target User Interface design & Generation using MDE
| Taken from [Veldhuis2013] |
8. Reverse Engineering tools
9. Etude de cas : SLATShare
9.1. Cahier des charges
Le SLAT-Parapente est la section Parapente du club SLAT qui est lui-même le club
montagne du CE d’Airbus.
Les membres de SLAT-Parapente organisent régulièrement des sorties pour co-voiturer et voler ensembles.
Ils souhaitent que vous leur développiez une application pour gérer les frais liés à ces sorties.
En effet, pour l’instant, chaque chauffeur remplit un fichier excel pour déclarer ses
passagers, le kilométrage etc. Puis ensuite le trésorier de l’association fait des calculs
d’apothicaire pour déterminer la prise en charge du club sur les frais de déplacement.
En termes de données, une sortie peut être de différents types (vol, réunion, séjour, …) et concerner un ou plusieurs chauffeurs.
Voici quelques caractéristiques et besoins clients (en vrac) :
-
L’application à développer devra fonctionner sur des mobiles et tablettes Android .
-
On pourra différencier les rôles des personnes utilisant l’application (passager, conducteur, trésorier).
-
On pourra avoir un accès Web aux informations concernant les membres.
-
Concernant les frais, chacun aura sur sa "page personnelle" les informations concernant le solde global en positif ou négatif et un récapitulatif de ses propres sorties.
-
On pourra envisager toute option utiles pour le futur (comme le calcul du kilométrage à partir du GPS, l’ajout de passager par leur QR-Code, etc.).
-
On pourra envisager également de coupler l’application avec la planification des sorties. Sur la base d’un calendrier, chacun peut se positionner présent un jour donné et tout le monde peux donc voir qui est présent ou disponible ce jour là. Peut-être même un système de vote associé à cette journée pour définir le lieux (modifiable afin de tenir compte de la dernière météo).
Quelques commentaires :
-
Les passagers à l’aller ne sont pas nécessairement les mêmes qu’au retour.
-
Les prises en charge sont différentes selon le type de sortie (vol, réunion, séjour, …)
-
"Chauffeur" veut dire "celui qui prend sa voiture" (ou plus précisément celui qui assume les frais). Bien évidemment, un chauffeur peut faire conduire un de ses passagers sans que cela change son statut pour l’application.
-
Le SLAT-Parapente possède également un mini-bus. Idéalement, l’application permettra de saisir un déplacement avec ce minibus (prise en charge parcitulière).
|
Vous pourrez vous inspirer d’applications comme : |
9.2. Questions
-
Réalisez un diagramme des cas d’utilisation de cette application.
-
Réalisez un diagramme de domaine (diagramme des classes métiers) de cette application.
-
Quel type de diagramme utiliser pour représenter les écrans de votre application?
-
Quel type de diagramme utiliser pour représenter des enchainements d’écrans ? Réalisez un diagramme de votre choix pour représenter les écrans principaux de votre application et leur enchaînement.
9.3. Outils
-
Pour les mockups/sketchs : https://iutblagnac.mybalsamiq.com/projects/slat-parapente
-
Pour UML™ : Papyrus4Education, plantUML
|
Vous pouvez accéder aux dessins de l’an dernier (https://iutblagnac.mybalsamiq.com/projects/voismabalade). |
9.4. Résultats attendus
-
Rapport au format
.pdf -
Démo au format de votre choix (PPT/PDF, Vidéo)
-
.zipavec figures, modèles.uml, code, etc.
9.5. Evaluation
Rappelons les conseils habituels :
-
clarté des diagrammes et des choix (explicites) de conception ou d’interprétation réalisés
-
cohérence entre les diagrammes
L’évaluation portera principalement sur les critères suivants :
| Critère | Type de critère | Poids approximatif |
|---|---|---|
Diagramme des UC |
Correction, pertinence |
15% |
Diagramme des Classes Domaine |
Correction, pertinence |
15% |
Maquettes utilisateur |
Correction, pertinence |
15% |
Diagramme d’un écran |
Correction, pertinence |
15% |
Cohérence inter-modèles (SNI/DSS, UC/DSS/DS/DCP) |
Correction, pertinence |
15% |
Communication/Présentations/Ignite |
subjectif :-) |
15% |
Clarté – Présentation du Dossier |
subjectif :-) |
10% |
|
Vous pouvez insérer une section "auto-évaluation" dans votre rapport, qui reprend cette grille et vous permet de vous auto-évaluer. |
References and useful links
References
-
[HighsmithFowler2001] Jim Highsmith and Martin Fowler. The agile manifesto. Software Development Magazine, 9(8) :29–30, 2001.
-
[1030005] Kieran Conboy and Brian Fitzgerald. Toward a conceptual framework of agile methods : a study of agility in different disciplines. In WISER ’04 : Proceedings of the 2004 ACM workshop on Interdisciplinary software engineering research, pages 37–44, New York, NY, USA, 2004. ACM.
-
[Roques2007a] Les Cahiers du Programmeur, UML2, Pascal Roques 3ème Edition, Eyrolles, 2007.
-
[Roques2007b] UML 2 par la pratique, Pascal Roques 6ème Edition, Eyrolles, 2007.
-
[Blanc2006] UML pour les développeurs, Xavier Blanc, Eyrolles, 2006.
-
[Longepe2006] Le projet d’urbanisation du S.I., C. Longépé, 3ème édition, Dunod, 2006.
-
[Gillet2008] Management des SI, M. & P. Gillet, Dunod, 2008.
-
[Muller] Modélisation objet avec UML. {pam} & Nathalie Gaetner, Eyrolles, 2003.
-
[AndroidFundamentals] http://developer.android.com/guide/components/fundamentals.html
Links
-
[IBM] http://asmarterplanet.com/mobile-enterprise/blog/2015/01/agile-discipline-approach-mobile-app-development.html
-
[uml-diagrams] http://www.uml-diagrams.org/android-application-uml-deployment-diagram-example.html
-
[AndroidDesign] http://www.javacodegeeks.com/2013/07/android-uml-design-an-app-part-1.html
-
http://www.inf.ed.ac.uk/publications/thesis/online/IM100767.pdf
-
http://fr.slideshare.net/LiliaSfaxi/p1-introduction-a-android
-
http://www.qualitystreet.fr/2010/07/07/prototypage-agile-papier-tableau-blanc-et-balsamiq/
-
[Veldhuis2013] http://essay.utwente.nl/63418/1/MScThesis_OudeVeldhuis_FINAL.pdf
Glossary
|
Ressources
The following definitions are only informative. You can find usefull other sources here: |
- ATL
-
_ATLAS Transformation Language
- DRY
-
Don’t Repeat Yourself
- EMF
-
_Eclipse Modeling Framework
- IHM
-
Interface Homme-Machine
- MCF
-
Modèle Conceptuel des Flux
- MCT
-
Modèle Conceptuel des Traitements
- MOA/MOE
-
Maîtrise d’ouvrage (MOA) Maîtrise d’oeuvre (MOE)
- MOF
-
Modèle Organisationnel des Flux
- MOT
-
Modèle Organisationnel des Traitements
- OMG
-
Object Management Group
- PPN
-
Programme Pédagogique National
- SEF
-
Schéma d'Enchaînement des Fenêtres
- SEP
-
Schéma d'Enchaînement des Pages
- SI
-
Système d'Information
- SNI
-
Schéma de Navigation d'Interfaces
- SO
-
Système Organisationnel
- SysML
-
System Modeling Language ™
- TRL
-
Technology Readiness Level
- URL
-
Universal Ressource Locator
About…
This web site has been developped by JMB using the following (open and free) tools:
-
Asciidoctor, v.
1.5.5 -
The git version control system
-
The Travis Continuous Integration tool